package com.itheima.pattern.singleton.demo8;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

// 测试使用序列化破坏单例模式
public class Client {
    public static void main(String[] args) throws Exception {
//        writeObject2File();

        readObjectFromFile();
        readObjectFromFile();
    }

    // 向文件中写数据（对象）
    public static void writeObject2File() throws Exception {
        // 桌面路径： C:\Users\Administrator\Desktop

        // 1. 获取Singleton对象
        Singleton instance = Singleton.getInstance();
        // 2. 创建对象输出流对象
        FileOutputStream fos = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\a.txt");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        // 3. 写对象
        oos.writeObject(instance);
        // 4. 释放资源
        oos.close();
    }

    // 读文件中的数据（对象）
    public static void readObjectFromFile() throws Exception {
        // 1. 创建对象输入流对象
        FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\a.txt");
        ObjectInputStream ois = new ObjectInputStream(fis);
        // 2. 读对象
        Singleton instance = (Singleton) ois.readObject();

        System.out.println(instance);

        // 3. 释放资源
        ois.close();
    }

}
